package a2_linkedlist.singlelinkedlist;

public class TestSingleLinkedList {
    public static void main(String[] args) {
        SingleLinkedList s = new SingleLinkedList();
        /**** 添加 ************/
        //头插法
        s.addFirst(2);
        s.addFirst(1);  //1 -> 2 -> NULL
        //索引插入
        s.addIndex(0,2);  //2 -> 1 -> 2 -> NULL
        s.addIndex(3,3);  //2 -> 1 -> 2 -> 3 -> NULL
        //尾插
        s.addLast(3);  //2 -> 1 -> 2 -> 3 -> 3 -> NULL
        System.out.println(s);

        /**** 查找 ************/
        //返回索引处value的值
        System.out.println("索引是1的元素值为 "+s.get(1));
        //判断链表中是否有value这个数据
        System.out.println("判断链表中是否有值为4的元素 "+s.contains(4));

        /**** 修改 ************/
        //将单链表中索引为index的元素修改，并返回修改前的值
        System.out.println("修改前的值为 "+s.set(1,5));  //2 -> 5 -> 2 -> 3 -> 3 -> NULL
        System.out.println(s);

        /**** 删除 ************/
        //删除索引处的数据
        s.removeIndex(2);  //2 -> 5 -> 3 -> 3 -> NULL
        System.out.println(s);
        //删除单链表中的第一个value值
        s.removeOnceValue(5);  //2 -> 3 -> 3 -> NULL
        System.out.println(s);
        //删除单链表中的全部value值
        s.removeAllValue(3);  //2 -> NULL
        System.out.println(s);
        s.clear();
        System.out.println(s);//NULL
    }
}
